﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIM.Geo.BE;
using System.Data;

namespace SIM.Geo.DA
{
    public class DAPlataforma : Base
    {
        /// <summary>
        /// Devuelve la lista de categoria de labores
        /// </summary>
        /// <returns></returns>
        public List<Plataforma> ListarPlataforma()
        {
            return this.Context.Plataforma.ToList();
        }

        /// <summary>
        /// Método para insertar un categoria de labor
        /// </summary>
        /// <param name="Plataforma"></param>
        /// <returns></returns>
        public int InsertarPlataforma(Plataforma Plataforma)
        {
            this.Context.Plataforma.AddObject(Plataforma);
            this.Context.SaveChanges();
            return Plataforma.CodigoPlataforma;
        }
        /// <summary>
        /// Método para modificar un categoria de labor
        /// </summary>
        /// <param name="Plataforma"></param>
        public void ModificarPlataforma(Plataforma Plataforma)
        {
            this.Context.Plataforma.Attach(Plataforma);
            this.Context.ObjectStateManager.ChangeObjectState(Plataforma, EntityState.Modified);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método para eliminar categoria de labor
        /// </summary>
        /// <param name="Plataforma"></param>
        public void EliminarPlataforma(Plataforma Plataforma)
        {
            this.Context.Plataforma.DeleteObject(Plataforma);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método que busca por nombre categoria de labor
        /// </summary>
        /// <param name="nombre"></param>
        /// <returns></returns>
        public List<Plataforma> BuscarPlataforma(string nombre)
        {
            return this.Context.Plataforma.Where(x => x.Descripcion.StartsWith(nombre)).ToList();
        }
        /// <summary>
        /// Método que devuelve categoria de labor por codigo
        /// </summary>
        /// <param name="codigoPlataforma"></param>
        /// <returns></returns>
        public Plataforma ObtenerPlataforma(int codigoPlataforma)
        {
            return this.Context.Plataforma.Where(x => x.CodigoPlataforma.Equals(codigoPlataforma)).FirstOrDefault();
        }
        /// <summary>
        /// Listar plataforma por nombre
        /// </summary>
        /// <param name="nombrePlataforma"></param>
        /// <returns></returns>
        public List<Plataforma> ListarPlataformaPorNombre(string nombrePlataforma)
        {
            return this.Context.Plataforma.Where(x => x.Descripcion.ToUpper().Equals(nombrePlataforma.ToUpper())).ToList();
        }
        /// <summary>
        /// Devuelve la lista de Plataforma por Categoria
        /// </summary>
        /// <param name="codigoCategoria"></param>
        /// <returns></returns>
        public List<Plataforma> ListarPlataformaPorCategoria(int codigoCategoria)
        {
            return this.Context.Plataforma.Where(x => x.CodigoCategoriaMuestraEspecial == codigoCategoria).ToList();

        }
    }
}
